const express = require('express');
const { body, param } = require('express-validator');
const CommentController = require('../../controllers/CommentController');
const { authenticateJWT } = require('../../middleware/auth');

const router = express.Router();

// 获取视频评论列表
router.get('/video/:videoId', [
  param('videoId').isNumeric().withMessage('视频ID必须是数字')
], CommentController.getVideoComments);

// 需要认证的接口
// 创建评论
router.post('/video/:videoId', authenticateJWT, [
  param('videoId').isNumeric().withMessage('视频ID必须是数字'),
  body('content').notEmpty().withMessage('评论内容不能为空').isLength({ max: 1000 }).withMessage('评论内容不能超过1000个字符'),
  body('parentId').optional().isNumeric().withMessage('父评论ID必须是数字')
], CommentController.createComment);

// 更新评论
router.put('/:id', authenticateJWT, [
  param('id').isNumeric().withMessage('评论ID必须是数字'),
  body('content').notEmpty().withMessage('评论内容不能为空').isLength({ max: 1000 }).withMessage('评论内容不能超过1000个字符')
], CommentController.updateComment);

// 删除评论
router.delete('/:id', authenticateJWT, [
  param('id').isNumeric().withMessage('评论ID必须是数字')
], CommentController.deleteComment);

// 评论点赞/取消点赞
router.post('/:id/like', authenticateJWT, [
  param('id').isNumeric().withMessage('评论ID必须是数字')
], CommentController.toggleCommentLike);

// 获取用户的评论历史
router.get('/user/history', authenticateJWT, CommentController.getUserComments);

module.exports = router;